package com.zhaorl.web;

import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description 你好web层
 * @Author zhaorl
 * @Date 2023/3/28 14:08
 */
@RestController
@Slf4j
public class HelloController {

    /**
     * hasRole，hasAnyRole：是角色授权，授权代码，在我们返回的UserDetails的Authority需要加ROLE_前缀，所以当授权码为ROLE_TEST时，不论是ROLE_TEST，还是TEST都是返回true。
     * hasAuthority：是权限授权，自定义的权限，返回的UserDetails的Authority只要与这里匹配就可以。所以当授权码为ROLE_TEST时，只有是ROLE_TEST才会返回true。
     * 注：权限标识判断是区分大小写的。
     * @return
     */
    @RequestMapping(value = "/hello")
    @PreAuthorize("hasAuthority('ROLE_ZHAO')")
    public String hello(){
        return "hello";
    }
}
